package br.com.empresa.dao;

import br.com.empresa.modelo.*;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

public class ProfessorDao {
	private static final String INSERT_PROFE = "insert into pessoafisica "
			+ "(idcodigo,nome,rg,cpf,tipopessoa,telefone,endereco,salario_prof,disciplina_prof,qtturma_prof)"
			+ "values(sq_cod_pesfis.nextval,?,?,?,?,?,?,?,?,?)";
	private static final String LIST_PROFE = "select * from pessoafisica where tipopessoa = 'P'";
	
	public void inserir(Professor prof,Endereco end){
		Connection con = null;
		try {
			con = FabricaConexao.getConexao();
			PreparedStatement pstm = con.prepareStatement(INSERT_PROFE);
			pstm.setString(1,prof.getNome());
			pstm.setString(2,prof.getRG());
			pstm.setString(3,prof.getCPF());			
			pstm.setString(4,prof.getTipoPessoa());
			pstm.setString(5,prof.getTelefone());
			pstm.setString(6,prof.getEndereco());
			pstm.setFloat(7,prof.getSalario());
			pstm.setString(8,prof.getDisciplina());
			pstm.setInt(9,prof.getQtTurma());
			
			pstm.execute();
			JOptionPane.showMessageDialog(null,"Professor inserido corretamente!");
		} catch (SQLException e) {
			JOptionPane.showMessageDialog(null,"Erro ao inserir um Professor na base de dados." + e.getMessage());
		}finally{
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
	}
	
	public List<Professor> listar(){
		Connection con = null;
		try {
			con = FabricaConexao.getConexao();
			
			PreparedStatement pstm = con.prepareStatement(LIST_PROFE);
			ResultSet rs = pstm.executeQuery();
			List<Professor> professores = new ArrayList<>();
			while(rs.next()){
				Professor prof = new Professor();
				prof.setCodigo(rs.getInt("idcodigo"));
				prof.setNome(rs.getString("nome"));
				prof.setCPF(rs.getString("cpf"));
				prof.setRG(rs.getString("rg"));
				prof.setTipoPessoa();				
				professores.add(prof);
				
			}
			return professores;
		} catch (SQLException e) {
			JOptionPane.showMessageDialog(null,"Erro ao listar alunos da base de dados." + e.getMessage());
		}finally{
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}return null;
		
	}
	
	
}
